package com.mallcloud.mall.converter;

import com.mallcloud.mall.product.api.dto.SkuPublishDTO;
import com.mallcloud.mall.product.api.entity.SkuModel;
import com.mallcloud.mall.product.api.entity.SkuStockModel;
import com.mallcloud.mall.product.api.entity.SpuSkuAttrValueModel;
import com.mallcloud.mall.product.api.vo.AppSkuVO;
import com.mallcloud.mall.product.api.vo.AttrExtendVO;
import com.mallcloud.mall.product.api.vo.SkuExAttrVO;
import com.mallcloud.mall.product.api.vo.SkuVO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;

import java.util.List;

@Mapper(componentModel = "Spring")
public interface SkuConverter {

    SkuConverter INSTANCE = Mappers.getMapper(SkuConverter.class);

    AppSkuVO VOToVO(SkuExAttrVO sku);

    SkuModel VOtoModel(SkuVO dto);

    SkuStockModel toSkuStock(SkuVO dto);

    @Mappings({
            @Mapping(source = "spuId", target = "spuId"),
    })
    List<SkuModel> DTOToModel(List<SkuPublishDTO> skuList);

    SpuSkuAttrValueModel VOToModel(AttrExtendVO x);

}
